/**
 * 
 */
package modelo.tests;

import junit.framework.TestCase;
import modelo.MetodosNumericos.DiferenciasCentrales;
import modelo.MetodosNumericos.Simpson;
import modelo.abstraccionesGeometricas.Intervalo;
import modelo.abstraccionesGeometricas.Punto;
import modelo.funciones.Exponencial;
import modelo.funciones.Funcion;

/**
 * @author Laura
 *
 */
public class ExponencialTest extends TestCase {

	private Funcion funcion;
	private Intervalo intervalo;
	
	/* (non-Javadoc)
	 * @see junit.framework.TestCase#setUp()
	 */
	@Override
	protected void setUp() throws Exception {
		super.setUp();
		this.funcion = new Exponencial();
		this.funcion.setMetodoParaDerivar(new DiferenciasCentrales());
		this.funcion.setMetodoParaIntegrar(new Simpson());
		intervalo= new Intervalo(0,1);
	}

	public void testEvaluar(){ 
		double doble = this.funcion.evaluar(1d);	
		assertTrue(doble == Math.exp(1d));
	}
	
	public void testIntegrar(){
	boolean bandera=false;
	double valor= funcion.integrar(intervalo);
	if (valor>Math.exp(1)-1.00001 && valor<Math.exp(1)-0.99999) bandera=true;
	assertTrue(bandera == true);
	}
	
	public void testDerivar(){
		double valor = funcion.calcularDerivada(new Punto(0d,0d));
		boolean bandera=false;
		if (valor<1.0001 && valor>0.9999) bandera=true;
		assertTrue(bandera == true);
	}
}
